// Copyright (c) 2007, Clarius Consulting, Manas Technology Solutions, InSTEDD, and Contributors.
// All rights reserved. Licensed under the BSD 3-Clause License; see License.txt.

using System.IO;

using Xunit;

namespace Moq.Tests
{
    public class StreamFixture
    {
        [Fact]
        public void ShouldMockStream()
        {
            var mockStream = new Mock<Stream>();

            mockStream.Setup(stream => stream.Seek(0, SeekOrigin.Begin)).Returns(0L);

            var position = mockStream.Object.Seek(0, SeekOrigin.Begin);

            Assert.Equal(0, position);

            mockStream.Setup(stream => stream.Flush());
            mockStream.Setup(stream => stream.SetLength(100));

            mockStream.Object.Flush();
            mockStream.Object.SetLength(100);

            mockStream.VerifyAll();
        }
    }
}
